package com.jian.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jian.domain.Entrust;
import com.jian.requests.CourierRequestBody;
import com.jian.responses.EntrustResponse;

import java.util.List;

/**
 * @author 18214
 * @description 针对表【entrust】的数据库操作Service
 * @createDate 2022-06-03 08:22:06
 */
public interface EntrustService extends IService<Entrust> {
    /**
     * 保存一条该用户绑定的邮寄信息
     *
     * @param entrust 邮寄信息
     * @return 是否保存成功
     */
    boolean addEntrustOnce(Entrust entrust);

    /**
     * 根据用户的角色返回信息:
     *      普通用户 返回与自己相关的邮寄信息
     *      快递员 返回与自己地区匹配的邮寄信息(未实现 统一返回所有邮寄信息)
     *      管理员 返回所有邮寄信息
     * @param token 用户登录token
     * @return 邮寄信息
     */
    List<EntrustResponse> getEntrustsFromRule(String token);

    /**
     * 根据邮寄信息表id修改邮寄信息
     * @param entrust 邮寄信息表
     * @return 是否修改成功
     */
    boolean updateEntrustOnce(Entrust entrust);

    /**
     * 根据用户登录的token 查询用户的权限
     * @param token token
     * @return
     */
    int userRule(String token);

    /**
     * 根据快递员请求的信息 更改邮件的邮寄信息状态
     * @param courierRequestBody 快递员用户请求的参数
     * @return 是否修改成功
     */
    boolean courierUpdateEntrust(CourierRequestBody courierRequestBody);

    boolean userComplete(CourierRequestBody requestBody);
}
